package com.gateway.service;

import cn.dev33.satoken.stp.StpInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

/**
 * 自定义权限验证接口扩展
 */
@Component
public class StpInterfaceImpl implements StpInterface {
    @Autowired
    private RedisTemplate redisTemplate;
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        // 返回此 loginId 拥有的权限列表
        // 这里一般从redis里面获取权限列表，没有的话然后再从数据库中查询。
        List range = redisTemplate.opsForList().range("permission:" + loginId, 0, -1);
        return range;
    }

    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        // 返回此 loginId 拥有的角色列表
        // 这里一般从redis里面获取角色列表，没有的话然后再从数据库中查询。
        List roles = redisTemplate.opsForList().range("role:" + loginId, 0, -1);
        return roles;
    }

}
